home *** CD-ROM | disk | FTP | other *** search
- /*
- * MidpMIDAS.cpp
- *
- * MIDAS Module Player for Windows NT MIDAS interface module
- *
- * $Id: MidpMIDAS.cpp 1.7 1997/01/25 13:17:44 pekangas Exp $
- *
- * Copyright 1996 Petteri Kangaslampi
- */
-
- #define WIN32_LEAN_AND_MEAN
- #include <windows.h>
- #include <mmsystem.h>
- #include <ddeml.h>
- #include <process.h>
- #include <stdio.h>
- #include "midasdll.h"
- #include "MidpNT.h"
-
- #define POLLRATE 50
-
- int mixRate = 44100, stereo = 1, force8bit = 0;
- static volatile int backgroundPlay = 0;
-
-
-
-
- /****************************************************************************\
- *
- * Function: void MIDASerror(void)
- *
- * Description: Gets the last MIDAS error, displays it, and exits
- *
- \****************************************************************************/
-
- void MIDASerror(void)
- {
- char *errorMessage;
-
- errorMessage = MIDASgetErrorMessage(MIDASgetLastError());
- MessageBox(NULL, errorMessage, "MIDAS Error!",
- MB_APPLMODAL | MB_ICONSTOP | MB_OK);
- if ( ddeInit )
- DdeUninitialize(ddeInstance);
- MIDASclose();
- ExitProcess(1);
- while(1); // we should NEVER end up here
- }
-
-
-
-
- /****************************************************************************\
- *
- * Function: void StopFreeModule(MIDASmodule module);
- *
- * Description: Stops playing a module and deallocates it
- *
- * Input: gmpModule *module Pointer to module structure returned
- * by LoadPlayModule().
- *
- \****************************************************************************/
-
- void StopFreeModule(MIDASmodule module)
- {
- if ( module == NULL )
- return;
-
- AddTextLine("Stopping module");
- if ( !MIDASstopModule(module) )
- MIDASerror();
-
- AddTextLine("Deallocating module");
- if ( !MIDASfreeModule(module) )
- MIDASerror();
-
- SendMessage(mainWinHandle, WM_SETTEXT, 0,
- (LPARAM) "MIDAS Module Player for Windows NT");
- }
-
-
-
-
- /****************************************************************************\
- *
- * Function: MIDASmodule LoadModule(char *fileName);
- *
- * Description: Loads a module file
- *
- * Input: char *fileName module file name
- *
- * Returns: Pointer to gmpModule structure for the loaded module,
- * NULL if loading failed.
- *
- \****************************************************************************/
-
- MIDASmodule LoadModule(char *fileName)
- {
- MIDASmodule module;
- char *errorMessage;
-
- AddTextLine("Loading Module");
-
- SendMessage(mainWinHandle, WM_SETTEXT, 0, (LPARAM) "MidpNT - Loading...");
-
- if ( (module = MIDASloadModule(fileName)) == NULL )
- {
- errorMessage = MIDASgetErrorMessage(MIDASgetLastError());
- MessageBox(NULL, errorMessage, "Module load failure",
- MB_APPLMODAL | MB_ICONSTOP | MB_OK);
- return NULL;
- }
-
- return module;
- }
-
-
-
-
- /****************************************************************************\
- *
- * Function: void PlayModule(MIDASmodule module);
- *
- * Description: Starts playing a module
- *
- * Input: MIDASmodule module the module
- *
- \****************************************************************************/
-
- void PlayModule(MIDASmodule module)
- {
- char buf[64];
- MIDASmoduleInfo moduleInfo;
-
- if ( !MIDASplayModule(module, 0) )
- MIDASerror();
-
- if ( !MIDASgetModuleInfo(module, &moduleInfo) )
- MIDASerror();
-
- sprintf(buf, "Playing \"%s\" - %i channels", moduleInfo.songName,
- moduleInfo.numChannels);
- AddTextLine(buf);
-
- sprintf(buf, "MidpNT - %s", moduleInfo.songName);
- SendMessage(mainWinHandle, WM_SETTEXT, 0, (LPARAM) buf);
- }
-
-
-
-
- /****************************************************************************\
- *
- * Function: void InitMIDAS(void)
- *
- * Description: Initializes MIDAS Sound System
- *
- \****************************************************************************/
-
- void InitMIDAS(void)
- {
- AddTextLine("Initializing MIDAS Sound System");
-
- if ( !MIDASinit() )
- MIDASerror();
-
- /* Start polling MIDAS in a thread: */
- if ( !MIDASstartBackgroundPlay(POLLRATE) )
- MIDASerror();
-
- backgroundPlay = 1;
- }
-
-
-
-
- /****************************************************************************\
- *
- * Function: void CloseMIDAS(void)
- *
- * Description: Uninitializes MIDAS Sound System
- *
- \****************************************************************************/
-
- void CloseMIDAS(void)
- {
- if ( backgroundPlay )
- if ( !MIDASstopBackgroundPlay() )
- MIDASerror();
-
- if ( !MIDASclose() )
- MIDASerror();
- }
-
-
-
-
- /****************************************************************************\
- *
- * Function: void StartupMIDAS(void)
- *
- * Description: Start up interface to MIDAS Sound System
- *
- \****************************************************************************/
-
- void StartupMIDAS(void)
- {
- MIDASstartup();
- }
-
-
- /*
- * $Log: MidpMIDAS.cpp $
- * Revision 1.7 1997/01/25 13:17:44 pekangas
- * Rewrote archive support
- *
- * Revision 1.6 1997/01/17 00:08:51 pekangas
- * Now puts song name and loading/decompressing messages in main window
- * caption
- *
- * Revision 1.5 1997/01/14 17:42:08 pekangas
- * Changed to use MIDAS DLL API
- *
- * Revision 1.4 1996/08/13 20:22:15 pekangas
- * #included stdio.h as MIDAS rawfile.h no longer does that
- *
- * Revision 1.3 1996/08/02 17:53:13 pekangas
- * Fixed to compile with Watcom C again
- *
- * Revision 1.2 1996/07/16 19:19:37 pekangas
- * Fixed to compile with Visual C, added RCS keywords, changed to LFs
- *
- */